package com.globalwave.system.service;

import com.globalwave.common.ArrayOrderList;
import com.globalwave.common.ArrayPageList;
import com.globalwave.system.entity.Privilege;
import com.globalwave.system.entity.PrivilegeCriterion;

public interface PrivilegeService {
    
    public ArrayPageList<Privilege> query(
            PrivilegeCriterion privilegeCriterion, 
            int pageIndex, 
            int pageSize,
            ArrayOrderList orderList) 
    throws Exception ;
    
    public Privilege create(Privilege privilege) throws Exception ;
    public void update(Privilege privilege) throws Exception ;
    public void delete(Privilege privilege) throws Exception ;
    public void deleteAll(Long[] privilegeIds) throws Exception ;
    public ArrayPageList<Privilege> possessedByUser(Long userId) throws Exception ;
    public ArrayPageList<Privilege> possessedByOrganization(Long organizationId) throws Exception ;
    public ArrayPageList<Privilege> getAllByUserId(Long user_id) throws Exception ;
}
